package com.example.demo.easyexcel.db.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.*;

/**
 * @author zjq
 * @version 创建时间：2021-12-17 15:24:52
 */
@Data
@ApiModel(value = "城市表")
@Entity
@Table(name = "city")
@DynamicUpdate()
@DynamicInsert()
public class City {

    //@DynamicUpdate()
    //适用于字段多的数据中某个字段需要更新，首先id查询数据，然后把需要修改的值set进去(为空不set)，然后直接执行save
    //原来编辑更新操作一般是回传所有编辑字段，再对编辑字段进行全部的覆盖操作

    //@DynamicInsert()
    //有关时间的，不需要插入，数据库直接生成（需设置数据库时间自动生成）

    //@DynamicUpdate的作用并不是更新指定字段，而是更新变化的字段;
    //update city set name=?, photo=? where id=? ----没有该注解的时候save是整表的字段的更新
    //有该注解的时候，只针对该有变化的字段进行更新，但是会执行两次sql,先查询后更新的操作
    //update city set name=? where id=?    ---存在注解
    //update city set photo=? where id=?   ---存在注解

    @Column(name = "id")
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @ApiModelProperty(value = "城市名称")
    @Column(name = "name")
    private String name;

    @ApiModelProperty(value = "照片")
    @Column(name = "photo")
    private String photo;


}
